/**
 * 
 */
package org.hotpotmaterial.codegenn2.service;

import java.util.List;

import org.hotpotmaterial.codegenn2.config.bean.PluginProperties;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author causer
 *
 */
public interface IPluginService {
	
	/**
	 * 判断是否是目录
	 * @param pluginName
	 * @param dir
	 * @return
	 */
	public String isDirectory(String pluginName, String dir);
	
	/**
	 * 获取文件/文件夹列表
	 * @param pluginName
	 * @param dir
	 * @return
	 */
	public List<String> getTemplateFileList(String pluginName, String dir);
	
	/**
	 * 获取文件内容
	 * @param pluginName
	 * @param fileName
	 * @return
	 */
	public String getFileContent(String pluginName, String fileName);
	
	/**
	 * 获取插件属性列表
	 * @param pluginName
	 * @return
	 */
	public PluginProperties getPluginProperties(String pluginName);
	
	/**
	 * 更新插件模板
	 * @param pluginName
	 * @param fileName
	 * @param content
	 */
	public void updateTemplate(String pluginName, String fileName, String content);
	
	/**
	 * 上传并更新模板
	 * @param pluginName
	 * @param fileName
	 * @param file
	 */
	public void uploadTemplate(String pluginName, String fileName, MultipartFile file);
	
	/**
	 * 上传并批量更新模板
	 * @param pluginName
	 * @param file
	 */
	public void uploadAndUnzipTemplates(String pluginName, MultipartFile file);

}
